package com.engine.game;

import com.component.game.Component;

public class Event {
	
	private final String sender; // имя отправителя
	private final String receiver; // имя ролучателя (в случае broadcast - получают все)
	private final String message; // непосредственное сообщение
	private final Component component; // название компоненты, для которой предназначено сообщение
	
	
	// Конструктор
	private Event(String sender, String receiver, String message, Component component){
		this.sender = sender;
		this.receiver = receiver;
		this.message = message;
		this.component = component;
	}
	
	
	// фабричный метод создания нового Event
	public static Event createEvent(String sender, String receiver, String message, Component component){
		
		return new Event(sender,receiver,message,component);
		
	}
	
	// фабричный метод создания нового Event с broadcast рассылкой
    public static Event createEvent(String sender, String message, Component component){
		
    	
		return new Event(sender, new String("BROADCAST"), message, component);
		
	}

    
    // методы получения информации об Event
	public String getSender() {
		return sender;
	}

	public String getReceiver() {
		return receiver;
	}

	public String getMessage() {
		return message;
	}

	public Component getComponent() {
		return component;
	}


}
